package com.xnyzc.lhy.mis.entity.order;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.Version;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;


/**
 * @Author: huxuekuo
 * @Date: 2019-07-22 15:04
 * @Description: 人员订单父类
 */
@Data
public class OaCOrder implements Serializable {

    @ApiModelProperty(value = "订单号")
    private String orderNo;

    @ApiModelProperty(value = "滴滴订单ID")
    private String didiOrderId;

    @ApiModelProperty(value = "订单类型（0：实时、1：预约、2：代叫）")
    private Integer orderType;
    @ApiModelProperty(value = "订单状态（参见字典表）")
    private Integer orderStatus;
    @ApiModelProperty(value = "叫车类型（经济、舒适、商务，参见字典表)")
    private Integer vehicleType;
    @ApiModelProperty(value = "乘车人手机号")
    private String passengerPhone;
    @ApiModelProperty(value = "预约时间")
    private Date appointment;
    @ApiModelProperty(value = "下单时间")
    private Date orderTime;
    @ApiModelProperty(value = "出发地地址")
    private String startAddress;
    @ApiModelProperty(value = "目的地地址")
    private String endAddress;
    @ApiModelProperty(value = "出发地经度")
    private String startLng;
    @ApiModelProperty(value = "出发地纬度")
    private String startLat;
    @ApiModelProperty(value = "目的地经度")
    private String endLng;
    @ApiModelProperty(value = "目的地纬度")
    private String endLat;
    @ApiModelProperty(value = "乘客发单时经度")
    private String clng;
    @ApiModelProperty(value = "乘客发单时纬度")
    private String clat;
    @ApiModelProperty(value = "预估价")
    private String estimatePrice;
    @ApiModelProperty(value = "起步价")
    private BigDecimal startFee;
    @ApiModelProperty(value = "基础费")
    private BigDecimal baseFee;
    @ApiModelProperty(value = "基础补足费")
    private BigDecimal baseSupplementFee;
    @ApiModelProperty(value = "里程费")
    private BigDecimal mileageFee;
    @ApiModelProperty(value = "里程数")
    private BigDecimal milageDistance;
    @ApiModelProperty(value = "时长费")
    private BigDecimal durationFee;
    @ApiModelProperty(value = "乘车时长")
    private BigDecimal durationTime;
    @ApiModelProperty(value = "远途费")
    private BigDecimal distanceFee;
    @ApiModelProperty(value = "总金额")
    private BigDecimal totalFee;
    @ApiModelProperty(value = "实付金额")
    private BigDecimal actualFee;
    @ApiModelProperty(value = "优惠券抵扣金额")
    private BigDecimal couponDeductionFee;
    @ApiModelProperty(value = "优惠券ID")
    private Long couponId;
    @ApiModelProperty(value = "价格规则ID")
    private Long rulesId;
    @ApiModelProperty(value = "发票开具状态（0：未开具、1：已开具）")
    private Integer invoiceStatus;
    @ApiModelProperty(value = "用户userID")
    private Long userId;
    @ApiModelProperty(value = "司机userID")
    private Long driverId;
    @ApiModelProperty(value = "是否已评论")
    private Integer isComment;
    @ApiModelProperty(value = "支付类型（0：余额、1：微信、2：支付宝）")
    private Integer paymentType;
    @ApiModelProperty(value = "城市ID")
    private String cityId;
    @ApiModelProperty(value = "用户来源")
    private String tag;
    @ApiModelProperty(value = "扩展字段1")
    private String expand1;
    @ApiModelProperty(value = "扩展字段2")
    private String expand2;
    @ApiModelProperty(value = "扩展字段3")
    private String expand3;
    @ApiModelProperty(value = "版本号")
    @Version
    private Long version;
    @ApiModelProperty(value = "是否删除(0:否,1:是)")
    @TableLogic
    private Integer deleted;
    @ApiModelProperty(value = "创建人")
    private String createUser;
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
    @ApiModelProperty(value = "更新人")
    private String updateUser;
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;
    @ApiModelProperty(value = "确认上车时间")
    private Date notarizeTime;
    @ApiModelProperty(value = "到达时间")
    private Date arriveTime;
    @ApiModelProperty(value = "车辆id")
    private Long vehicleId;
    @ApiModelProperty(value = "等待费")
    private BigDecimal awaitFee;
    @ApiModelProperty(value = "服务费")
    private BigDecimal serviceFee;
    @ApiModelProperty(value = "空驶费")
    private BigDecimal emptyDrivingFee;
    @ApiModelProperty(value = "高德猎鹰服务轨迹ID")
    private Long gpsId;
    @ApiModelProperty(value = "抽成后费用")
    private BigDecimal drawFee;
    @ApiModelProperty(value = "代叫人姓名")
    private String passengerName;
    @ApiModelProperty(value = "拼车流水号")
    private String carpoolSerialNo;
    @ApiModelProperty(value = "是否拼车（0：否、1：是）")
    private Integer isCarpool;
    @ApiModelProperty(value = "拼车人数")
    private Integer carpoolNumber;
    @ApiModelProperty(value = "等待乘客上车时间")
    private Date arriveMeetPassengerTime;
    @ApiModelProperty(value = "订单取消时间")
    private Date cancelOrderTime;
    @ApiModelProperty(value = "远途行驶里程")
    private BigDecimal emptyDistance;


    /**
     * 冗余字段
     */
    @ApiModelProperty(value = "储存主键")
    @TableField(exist = false)
    private Long id;

    //-----------------里程计费冗余字段------------------
    @ApiModelProperty(value = "上一次计费时间")
    @TableField(exist = false)
    private Date lastTime;
    @ApiModelProperty(value = "要显示的时长费")
    @TableField(exist = false)
    private BigDecimal showTimeFee;
    @ApiModelProperty(value = "上一次计算米数")
    @TableField(exist = false)
    private BigDecimal lastMileage;
    @ApiModelProperty(value = "要显示的里程费")
    @TableField(exist = false)
    private BigDecimal showMileageFee;
    @ApiModelProperty(value = "要显示的里程费")
    @TableField(exist = false)
    private BigDecimal currentToatlMileage;
    @ApiModelProperty(value = "是否是最后结算 0 否 1 - 是")
    @TableField(exist = false)
    private Integer isFinalSett;
    @ApiModelProperty(value = "测试总里程")
    @TableField(exist = false)
    private BigDecimal totalMileage;


    //-----------------猎鹰服务信息冗余字段-------------------
    @ApiModelProperty(value = "终端ID")
    @TableField(exist = false)
    private Long tid;
    @ApiModelProperty(value = "服务ID")
    @TableField(exist = false)
    private Long serviceId;

    //-----------------司机信息冗余字段-------------------
    @ApiModelProperty(value = "车辆品牌")
    @TableField(exist = false)
    private String brand;
    @ApiModelProperty(value = "司机姓名")
    @TableField(exist = false)
    private String vehUserName;
    @ApiModelProperty(value = "司机手机号")
    @TableField(exist = false)
    private String vehUserPhone;
    @ApiModelProperty(value = "司机等级")
    @TableField(exist = false)
    private String driverLevel;
    @ApiModelProperty(value = "司机驾龄")
    @TableField(exist = false)
    private String beenDriving;
    @ApiModelProperty(value = "总服务分数")
    @TableField(exist = false)
    private int totalServiceScore;
    @ApiModelProperty(value = "车牌号")
    @TableField(exist = false)
    private String vehNo;
    @ApiModelProperty(value = "司机当前经度")
    @TableField(exist = false)
    private String driverLng;
    @ApiModelProperty(value = "司机当前纬度")
    @TableField(exist = false)
    private String driverLat;
    @ApiModelProperty(value = "到达预约地点时间")
    @TableField(exist = false)
    private String arrivTime;


    //-----------------用户信息冗余字段-------------------
    @ApiModelProperty(value = "头像ID")
    @TableField(exist = false)
    private String avatarFileId;
    @ApiModelProperty(value = "用户姓名")
    @TableField(exist = false)
    private String userName;

    //--------------------邀约拼车----------------------
    @ApiModelProperty(value = "邀约类型(1 未邀约 2 - 私人邀约 3 - 公务邀约)")
    private int invitationType;
    @ApiModelProperty(value = "邀约支付类型(1 - 邀约人支付 2 - 被邀约人支付)")
    private int invitationPayType;
    @ApiModelProperty(value = "邀约人类型(1 - 邀约人 2 - 被邀约人)")
    private int invitationPeopleType;
    @ApiModelProperty(value = "详见字典表")
    private int invitationStatus;
    @ApiModelProperty(value = "优惠费用")
    @TableField(exist = false)
    private String couponFee;


    @ApiModelProperty(value = "订单渠道(0-普通 1-滴滴)")
    @TableField(exist = false)
    private Integer orderChannel;

    @ApiModelProperty(value = "滴滴用户id")
    @TableField(exist = false)
    private String didiUserId;

    @ApiModelProperty(value = "取消订单备注")
    @TableField(exist = false)
    private String cancelReason;

    @ApiModelProperty(value = "特殊时段费")
    @TableField(exist = false)
    private BigDecimal specialPeriodFee;

    @ApiModelProperty(value = "高峰附加费")
    @TableField(exist = false)
    private BigDecimal peakAddFee;

    @ApiModelProperty(value = "滴滴订单状态（参见字典表）")
    private Integer didiOrderStatus;

    @ApiModelProperty(value = "乘客真实手机号后四位")
    private String passengerPhoneSuffix;

    @ApiModelProperty(value = "预估ID")
    @TableField(exist = false)
    private Long estimateId;

    @ApiModelProperty(value = "服务产品线")
    @TableField(exist = false)
    private String productType;

    @ApiModelProperty(value = "去接乘客时间")
    @TableField(exist = false)
    private Date meetPassengerTime;

    @ApiModelProperty(value = "司机起点")
    @TableField(exist = false)
    private String driverStartAddress;

    @ApiModelProperty(value = "最后司机到达位置")
    @TableField(exist = false)
    private String driverEndAddress;

    @ApiModelProperty(value = "乘客付款时间")
    @TableField(exist = false)
    private Date passengerPayTime;

    @ApiModelProperty(value = "预估时间")
    @TableField(exist = false)
    private BigDecimal estimateTime;

    @ApiModelProperty(value = "预估距离")
    @TableField(exist = false)
    private BigDecimal estimateDistance;

    @ApiModelProperty(value = "预估里程费")
    @TableField(exist = false)
    private BigDecimal estimateNormalFee;

    @ApiModelProperty(value = "预估时长费")
    @TableField(exist = false)
    private BigDecimal estimateTimeFee;

    @ApiModelProperty(value = "预估远途行驶距离")
    @TableField(exist = false)
    private BigDecimal estimateEmptyDistance;

    @ApiModelProperty(value = "预估计价行驶距离")
    @TableField(exist = false)
    private BigDecimal estimateNormalDistance;

    @ApiModelProperty(value = "预计普通时段计费时间")
    @TableField(exist = false)
    private BigDecimal estimateNormalTime;

    @ApiModelProperty(value = "预计远途费")
    @TableField(exist = false)
    private BigDecimal estimateEmptyFee;

    @ApiModelProperty(value = "预估特殊时段费")
    @TableField(exist = false)
    private BigDecimal estimateTimeRateFee;
}
